Library

Adding Data

Methods for adding rows, columns, and individual cells to a GPAL grid.

AI Input and Output Controls

GPALInput and GPALTextArea can feed GPAL.Ai as live input sources; GPALTextArea and GPALRichTextBox receive AI output; GPALStatusStrip shows AI status - wiring all three turns a form into a live AI interface.

Algorithm, Key and Input

Choosing what GPAL.Cryptography works with: the algorithm, the key material, and the data it acts on.

Answering Browser Dialogs

Answer the alert, confirm and prompt dialogs a page raises, instead of letting one open and stop the workflow until somebody clicks it.

AppendTo

Executes the conversion and appends the result to an existing file rather than overwriting it. Use when accumulating records across multiple converter calls.

Attaching a Logger and Entry Format

How a logger is built, attached, and detached, and how each entry line is formatted. There is no Log method: entries come from published events.

Browser Navigation via REST

REST API methods for navigating the browser, managing tabs and windows, and controlling window size.

Browser Settings and Engine

Methods for configuring the browser type, driver location, download behavior, network settings, and automation engine mode.

Callbacks and Conditional Logic

Methods for attaching custom logic that runs after data entry, when selectors match elements, or when selectors find no elements.

Callbacks and Conditional Logic

Methods for attaching custom logic that runs after data entry, when selectors match elements, or when selectors fail to find elements.

CallOnFail: Deciding About a Failure

A callback for a failure the workflow can have an opinion about, rather than one GPAL should decide alone.

Click Offset and Image Matching

Methods for adjusting where clicks land relative to an element, configuring drag offsets, and locating elements by image template matching.

Comparing Data

Methods for comparing the content of a range against another file, grid, or range - useful for data validation and reconciliation.

Composing Messages

Methods for setting the email envelope - from, to, CC, BCC, subject, body, and attachments.

Connection and File Selection

Methods for authenticating with Google Drive and targeting specific files or local files for upload.

Connection and Sheet Selection

Methods for authenticating with Google Sheets, selecting a spreadsheet and sheet, and obtaining the Sheets object.

Connection Configuration

Methods for configuring the database connection - either via a full connection string or by setting server name, database name, username, and password individually.

Contains Filters

Methods that filter found elements by checking if a property contains a substring - a looser match than the exact Match methods.

Credentials Configuration (CredentialsConfig)

CredentialsConfig holds the OAuth endpoints, redirect URIs, vault API base URLs, and field-name keys used by every credential service. Load() reads ./credentialsConfig.json by default (or returns built-in defaults) and Save() writes it back. Both accept an optional GPALFile to redirect to a custom path and set it as the in-session default.

Credentials Entry Point and Account Setters

GPAL.Credentials and GPAL.CredentialsFor(serviceType) both start a credentials request; WithService selects the provider, and WithUsername/WithPassword set the account used to authenticate.

CRUD Operations

Methods for reading, creating, updating, and deleting database records, and for executing arbitrary SQL commands.

CSV Configuration

Three settings control how CSV, TAB, and PIPE-delimited input is parsed: whether the first row is column headers, whether fields are enclosed in quotes, and whether to skip the first row entirely.

Data Retrieval

Methods for extracting data from the current page - as a grid, raw HTML, sitemap URLs, Next.js hydration data, or an LLM-friendly page digest.

Database Logging

Log directly to a database table by attaching a GPALDatabase object to the logger.

Deleting Data

Methods for removing rows and clearing all data from a grid.

Direct Username/Password Credentials

CredentialServiceType.None supplies a username and password directly in code, with no password manager involved. SaveTo writes them straight into a grid for FillInFrom.

DOM Queries and Context

REST API methods for querying the DOM by XPath or CSS, retrieving element properties, and switching context to iframes and shadow DOM.

Drag and Drop

Dragging an element to another element, or by a distance, with the selection built the way a person builds it.

Drive Operations

Methods for uploading, downloading, moving, renaming, deleting files, and listing files in Google Drive.

Element Attributes

Read and write DOM attributes directly on matched elements.

Element Interaction via REST

REST API methods for clicking, typing, hovering, and filling inputs on elements identified by XPath, CSS, or element ID.

Encoding and Decoding

Methods for encoding plain text to Base64 and decoding Base64 strings back to text.

Encrypt, Decrypt, Hash, Sign and Verify

The operations themselves, each handing its result back through an out parameter.

Exact Match Filters

Methods that filter found elements by requiring an exact match on a specific property - text content, value, attribute, href, src, or placeholder.

Executable Setup

Everything a process is given before it starts: the executable, one call per argument, the directory it runs in, its environment, and where its output goes.

Executing CDP Commands via PuppeteerClient

PuppeteerClient mirrors RESTClient's Execute family - Execute(), Execute<T>(), ExecuteAsync(), AndThen() - plus navigation, element interaction, and DOM query methods backed directly by CDP. All of it runs on GPAL's own custom CDP implementation, not a Puppeteer-library wrapper.

Executing Requests

Methods for executing REST API calls - synchronously or asynchronously, with single or chained results, and for checking HTTP status.

File Configuration

A path is a GPALFile, so most of the time nothing here is needed. GPAL.File is the builder for when the parsing or the output has to be described: delimiter, column names, header handling, quotes and overwrite behavior.

File Dialogs

Answering the Windows Open, Save As and folder picker dialogs, through UIAutomation rather than by typing into them.

File Downloads, Uploads, and Export

Methods for downloading files by clicking links, uploading files through file inputs, printing pages to PDF, and exporting scraped data to CSV, Excel, or text files.

File Operations

Methods for copying, moving, and deleting files.

Filling Forms with Data

Methods for populating form controls from data sources and for reacting after each row of data is applied.

Finding and Loading Images

Methods for finding a template image within the current screen and loading images from file or Base64 strings.

Form Data Entry

Methods for filling desktop application inputs from data sources - overwriting, appending, or inserting from strings, files, databases, or grids.

Form Data Entry

Methods for filling in form inputs from data sources - overwriting, appending, or inserting content from strings, files, databases, or grids.

Form Layout and Controls

Methods for configuring the GPALForm window - title, size, position, and which controls it contains.

Formatting Ranges

Methods for applying formatting to a range of cells - alignment, color, number format, and text rotation.

GetClipboard

Reads the Windows clipboard. The type says which form to take, and SaveTo says what to put it in: a string, a grid, or a file.

Gherkin Setup

Steps take arguments, up to three, passed beside the step rather than captured. The browser or application belongs to the workflow, not to the spec.

Gherkin Steps

Given, When, And, and Then - the four fluent methods that map to standard Gherkin BDD syntax for structuring automation workflows as human-readable specifications.

Google Apps Script Integration

Methods for uploading, deploying, and triggering Google Apps Script within a spreadsheet.

GPALButton

A push button for GPALForm. Its own settings are Default and the click handler; everything else is shared.

GPALChart

A chart for GPALForm.

GPALCheckBox

A checkbox for GPALForm, holding a true or false the workflow reads back.

GPALComboBox

A drop-down list for GPALForm: a set of items, one of them selected.

GPALDataGridView

A data grid for GPALForm, filled from a grid, a DataTable, a database or a file.

GPALDateTimePicker

A date and time picker for GPALForm.

GPALFileSelector

A file or folder picker for GPALForm: a text box with a browse button, or one compact row.

GPALGroupBox

A titled box holding other controls.

GPALInput

A single-line text input for GPALForm: free text, a password field, read-only display, or placeholder-prompted entry.

GPALLabel

A text label for GPALForm, for headings and for text a workflow updates as it runs.

GPALListView

A multi-column list for GPALForm, with optional checkboxes and sortable columns.

GPALMenuBar, GPALToolbar and GPALBarItem

A menu bar, a toolbar, and the items that go on either one.

GPALNumericUpDown

A number box with up and down arrows for GPALForm.

GPALPicture

An image for GPALForm.

GPALProgressBar

A progress bar for GPALForm.

GPALRadioButton

A radio button for GPALForm. Buttons in the same container are mutually exclusive.

GPALRequest: A Request You Can Issue

A request object, either captured from a page or written by hand, ready to be handed to Fetch.

GPALRichTextBox

A rich text pane for GPALForm that renders Markdown, for output a workflow writes as it runs.

GPALSlider

A slider for GPALForm, for a number the user drags rather than types.

GPALSplitter

Two panes with a bar between them that the user can drag.

GPALStatusStrip

A status bar along the bottom of a GPALForm.

GPALTab

A tab in a GPALForm. Controls added after it belong to it until the next tab.

GPALTableLayoutPanel

A grid container for GPALForm, for laying controls out in rows and columns.

GPALTextArea

A multi-line, word-wrapped text box for GPALForm, for text a workflow writes or a user types.

GPALTreeView

A tree for GPALForm, with optional checkboxes.

Input, Output, and Execution

Methods for providing input to the AI model, specifying where results go, executing the task, and reacting to the AI response - including live form-wired input and output.

JavaScript Execution and Storage

Methods for executing custom JavaScript on the page and for reading, writing, or deleting browser storage (cookies, localStorage, sessionStorage, IndexedDB).

Keys: Derived, Generated, and RSA for a Small Secret

Deriving a key from a password with PBKDF2, and using RSA to carry a key rather than a file.

LastError: What Went Wrong on the Last Call

A failed database call does not throw. It leaves a DatabaseError behind for the workflow to read.

Launching and Process Control

Launch starts the process and answers the running launcher: read its output, wait for it, ask whether it is still up, and stop it or its whole tree.

Launching Applications

Methods for opening a Windows desktop application, passing launch parameters, assigning a name for identification, and closing it when done.

Master Credentials with WithCredentials

WithCredentials(ICredentials) copies authentication fields - username, password, service key, OAuth tokens - from a previously-built credentials object, so a password manager's master login can be built once and reused across many lookups.

Mouse and Keyboard

Methods for simulating clicks, keyboard input, drag-and-drop, and modifier key combinations.

Mouse, Keyboard, and Input

Methods for clicking elements, typing text, pressing special keys, and switching focus between controls in a desktop application.

Navigation

Methods for navigating the browser to URLs, moving through history, and closing the browser instance.

OAuth and Service Account

For Google, Azure, and AWS, FetchAccessToken exchanges a Google service account key or an OAuth client ID/secret (with WithScope) for an access token - opening a browser for one-time consent if no service account key or refresh token is supplied.

Opening and Navigating Excel Files

Methods for specifying which Excel file and sheet to operate on, and for closing the workbook when done.

Output Configuration

Methods for specifying where log output goes - root directory, filename, filename pattern, and directory structure.

Parameter Definitions

Methods for defining the data type and properties of database columns when using GPAL to create tables or define schema.

Parameters

Methods for passing parameter values to SQL commands and stored procedures, and for using a grid as the parameter source.

Password Manager Vaults

WithService(LastPass / OnePassword / Dashlane / Bitwarden / Keeper) retrieves a saved login from that password manager. GetCredentialsFor sets the search target, WithDomain filters by URL, and SaveTo appends matching [Username, Password] rows to a grid.

Playlists, Lookups and Searching a Channel

Creating playlists, adding videos already uploaded, and reading video information back.

Pre-Navigation Storage Actions

Methods for attaching browser storage operations (cookies, localStorage, sessionStorage, IndexedDB) that execute automatically before the browser navigates to the URL.

PrettyPrintTo

Formats JSON, YAML, XML, or HTML with human-readable indentation and line breaks. All other formats (CSV, TAB, PIPE, etc.) are returned as-is.

Printing to PDF

Writes a PDF of one element on the page, or of the whole page, with the styling it is shown with.

PuppeteerClient - In-Process CDP Automation

PuppeteerClient is the in-process equivalent of RESTClient - the same fluent endpoint-based API, but commands are sent directly over a Chrome DevTools Protocol (CDP) connection instead of through the OttoMagic REST API.

PuppeteerCommunicator - The CDP Transport Layer

PuppeteerCommunicator is the lowest-level layer in GPAL's browser stack - a managed websocket connection that speaks the Chrome DevTools Protocol directly, used internally by PuppeteerClient and the Puppeteer-based automation engines.

Query Configuration

Methods for specifying the SQL query, stored procedure, or table name that a database operation runs against.

Reading and Exporting Data

Methods for exporting Excel data to a file, grid, or string variable, and for calculating summary values from a range.

Reading and Writing Data

Methods for reading ranges, writing data, and appending or inserting values into Google Sheets.

Reading Data

Pulling rows out of a desktop application with GetGrid, naming the columns, and saving them to a file.

Reading Data

Methods for reading individual cells, iterating rows, counting elements, and checking for value presence in a grid.

Recording What the Page Calls

Watch the calls a page makes to its own API, so an endpoint can be read off a site rather than guessed at.

Regex Match Filters

Methods that filter found elements using regular expressions on text, value, attribute, href, src, or placeholder - for when exact matching is too strict.

RegisterKnownStructType

Registers a custom struct or complex nested type so the automapper can correctly deserialize it when using SaveTo<T>. Call before WithInput for each type that the mapper cannot resolve automatically.

Retrieving Results

Methods for capturing query results as a DataTable, an IGPALGrid, or via the Tokens property for debugging.

SaveTo

Executes the conversion and writes the result to a file, database, grid, string, or strongly-typed class. SaveTo<T> is the flagship overload - it automaps converted data directly into a typed C# class with zero mapping code.

Saving Decoded Data

Methods for saving Base64-decoded bytes to a file and guessing the correct file extension from binary content.

Scheduling a Premiere

Waiting for YouTube to finish processing, then setting each video to premiere.

Screen Capture

Methods for capturing screenshots of the screen or browser, and for converting screenshots to Base64, Bitmap, or saving to file.

Script Injection

Register a script that runs automatically on every new document load (before page scripts run), and remove it later.

Scrolling

Methods for scrolling UI Automation elements within a desktop application, both vertically and horizontally.

Scrolling, Waiting, and Pagination

Methods for scrolling the page, waiting for elements or conditions, and handling paginated or infinite-scroll data sources.

Selector Behavior and Engine

Methods for configuring how a selector behaves - stopping the workflow on failure, enabling scroll-based search, using OCR, naming the selector for logs, and selecting the interaction engine.

Selector Callbacks

Attach conditional logic directly to a selector - run a delegate when elements are found or when no elements are found.

Selector Definition

Methods for defining how GPAL locates an element - by CSS, XPath, AutomationID, name, text, value, href, or a custom attribute.

Selector Paths

How an XPath-like selector names a UIAutomation element: control types, attributes, position, and the descendant axis.

Selector Targeting

Methods for defining which UI automation elements the next action targets, including repeating element groups and persistent selectors.

Selector Targeting

Methods for defining which elements the browser's next action targets, including iframe context, shadow DOM, and repeating element groups.

Send, Receive, and Utilities

Sending the composed message, reading incoming messages and their attachments, marking or deleting the ones that have been handled, clearing the envelope between messages, and parsing address strings.

Server Configuration

Server, port, and credential settings for sending and receiving, plus loading and saving them to a file.

SetClipboard

Puts what WithInput named onto the Windows clipboard, as text, a grid, a file, or an image.

Settings Every Control Takes

The settings and callbacks shared by every GPAL form control, and the chain order they have to be said in.

Setup and Configuration

Methods for initializing the RESTClient with an API base URL, endpoint, name, and optional OpenAPI map.

Setup and Task Configuration

Methods for configuring the AI provider, task type, classification, and credentials before executing an AI operation.

Sheet and Spreadsheet Management

Methods for creating, deleting, and renaming sheets, setting the spreadsheet title, and performing calculations.

Showing and Hiding Forms

Methods for displaying the form to the user, showing it as a modal dialog, and hiding it.

Stealth and Anti-Detection

Methods for reducing automation detection - CDP protection, toString overrides, dark mode, Google referrer spoofing, chromedriver patching, and stealth clicking.

Storage and Headers

REST API methods for reading, writing, and deleting browser storage (cookies, localStorage, sessionStorage, IndexedDB) and for setting custom HTTP headers.

Tabs and Windows

Methods for managing multiple browser tabs and windows, and for controlling the browser window state.

Targeting Ranges and Cells

Methods for specifying which cells, ranges, rows, or columns an Excel operation applies to.

Tokens and Paging: Running One Request Many Times

Turn a captured request into a template with holes in it, then run it once per row of values.

Transactions

Methods for wrapping multiple database operations in a single transaction with commit and rollback support.

Uploading a Video

Describing a video and uploading the file, through GPAL.YouTube.

URL Builder

Methods for creating and updating a GPALUrl object that carries a URL string and optional pre-navigation storage actions.

Using a Fetched Access Token

Pass the access token returned by FetchAccessToken to RESTClient as a Bearer token to call the provider's API directly.

Waiting

Methods for pausing execution until a specific time has passed, a UI element appears, or a named Windows window becomes visible.

Waiting for Elements, State, and Time (WaitFor)

WaitFor has three overloads on Browser - a fixed time, a Selector, or an ElementState - and behaves differently depending on whether it is called before or after an action in the current unit of work.

Windows and Launching

Settling on the right window, sizing and moving it, and launching a program that is already running.

WithInput

Sets the data source for the conversion. Accepts a file, database, grid, string, object, or dictionary list - GPAL infers the format or you can specify it explicitly with WithInputType.

WithInputType

Explicitly sets the format of the input data. Use when format cannot be auto-detected from a file extension or string content, or to override GPAL's detection.

WithOutputType

Sets the target format for the conversion. Determines how SaveTo, RenderTo, and AppendTo serialize the data.

Workflows, Loops, and Results

Methods for defining reusable REST workflows, looping over conditions, naming results for chained use, and retrieving accumulated execution results.

Workflows: Sequential, Looped, and Concurrent

Adding workflows to a browser to run them in order or repeat them until a condition is met, and GPAL.Workflow for running whole workflows at once, each with a browser of its own.

Writing Cell Values

Methods for setting, replacing, inserting, prepending, and appending values within targeted cells or ranges.

On this page


Library
Adding Data
AI Input and Output Controls
Algorithm, Key and Input
Answering Browser Dialogs
AppendTo
Attaching a Logger and Entry Format
Browser Navigation via REST
Browser Settings and Engine
Callbacks and Conditional Logic
Callbacks and Conditional Logic
CallOnFail: Deciding About a Failure
Click Offset and Image Matching
Comparing Data
Composing Messages
Connection and File Selection
Connection and Sheet Selection
Connection Configuration
Contains Filters
Credentials Configuration (CredentialsConfig)
Credentials Entry Point and Account Setters
CRUD Operations
CSV Configuration
Data Retrieval
Database Logging
Deleting Data
Direct Username/Password Credentials
DOM Queries and Context
Drag and Drop
Drive Operations
Element Attributes
Element Interaction via REST
Encoding and Decoding
Encrypt, Decrypt, Hash, Sign and Verify
Exact Match Filters
Executable Setup
Executing CDP Commands via PuppeteerClient
Executing Requests
File Configuration
File Dialogs
File Downloads, Uploads, and Export
File Operations
Filling Forms with Data
Finding and Loading Images
Form Data Entry
Form Data Entry
Form Layout and Controls
Formatting Ranges
GetClipboard
Gherkin Setup
Gherkin Steps
Google Apps Script Integration
GPALButton
GPALChart
GPALCheckBox
GPALComboBox
GPALDataGridView
GPALDateTimePicker
GPALFileSelector
GPALGroupBox
GPALInput
GPALLabel
GPALListView
GPALMenuBar, GPALToolbar and GPALBarItem
GPALNumericUpDown
GPALPicture
GPALProgressBar
GPALRadioButton
GPALRequest: A Request You Can Issue
GPALRichTextBox
GPALSlider
GPALSplitter
GPALStatusStrip
GPALTab
GPALTableLayoutPanel
GPALTextArea
GPALTreeView
Input, Output, and Execution
JavaScript Execution and Storage
Keys: Derived, Generated, and RSA for a Small Secret
LastError: What Went Wrong on the Last Call
Launching and Process Control
Launching Applications
Master Credentials with WithCredentials
Mouse and Keyboard
Mouse, Keyboard, and Input
Navigation
OAuth and Service Account
Opening and Navigating Excel Files
Output Configuration
Parameter Definitions
Parameters
Password Manager Vaults
Playlists, Lookups and Searching a Channel
Pre-Navigation Storage Actions
PrettyPrintTo
Printing to PDF
PuppeteerClient - In-Process CDP Automation
PuppeteerCommunicator - The CDP Transport Layer
Query Configuration
Reading and Exporting Data
Reading and Writing Data
Reading Data
Reading Data
Recording What the Page Calls
Regex Match Filters
RegisterKnownStructType
Retrieving Results
SaveTo
Saving Decoded Data
Scheduling a Premiere
Screen Capture
Script Injection
Scrolling
Scrolling, Waiting, and Pagination
Selector Behavior and Engine
Selector Callbacks
Selector Definition
Selector Paths
Selector Targeting
Selector Targeting
Send, Receive, and Utilities
Server Configuration
SetClipboard
Settings Every Control Takes
Setup and Configuration
Setup and Task Configuration
Sheet and Spreadsheet Management
Showing and Hiding Forms
Stealth and Anti-Detection
Storage and Headers
Tabs and Windows
Targeting Ranges and Cells
Tokens and Paging: Running One Request Many Times
Transactions
Uploading a Video
URL Builder
Using a Fetched Access Token
Waiting
Waiting for Elements, State, and Time (WaitFor)
Windows and Launching
WithInput
WithInputType
WithOutputType
Workflows, Loops, and Results
Workflows: Sequential, Looped, and Concurrent
Writing Cell Values
💬 Ask GPAL